package org.stragma.symbian.apply.stratego;

import org.strategoxt.stratego_lib.*;
import org.strategoxt.stratego_lib.*;
import org.strategoxt.lang.*;
import org.spoofax.interpreter.terms.*;
import static org.strategoxt.lang.Term.*;
import org.spoofax.interpreter.library.AbstractPrimitive;
import java.util.ArrayList;
import java.lang.ref.WeakReference;

@SuppressWarnings("all") public class proplawsj  
{ 
  protected static final boolean TRACES_ENABLED = true;

  protected static ITermFactory constantFactory;

  private static WeakReference<Context> initedContext;

  private static boolean isIniting;

  public static IStrategoConstructor _consConc_2;

  public static IStrategoConstructor _consNone_0;

  public static IStrategoConstructor _consSome_1;

  public static IStrategoConstructor _consEq_2;

  public static IStrategoConstructor _consImpl_2;

  public static IStrategoConstructor _consOr_2;

  public static IStrategoConstructor _consAnd_2;

  public static IStrategoConstructor _consNot_1;

  public static Context init(Context context)
  { 
    synchronized(proplawsj.class)
    { 
      if(isIniting)
        return null;
      try
      { 
        isIniting = true;
        ITermFactory termFactory = context.getFactory();
        if(constantFactory == null)
        { 
          initConstructors(termFactory);
          initConstants(termFactory);
        }
        if(initedContext == null || initedContext.get() != context)
        { 
          org.strategoxt.stratego_lib.Main.init(context);
          org.strategoxt.stratego_lib.Main.init(context);
          context.registerComponent("proplawsj");
        }
        initedContext = new WeakReference<Context>(context);
        constantFactory = termFactory;
      }
      finally
      { 
        isIniting = false;
      }
      return context;
    }
  }

  public static Context init()
  { 
    return init(new Context());
  }

  public static void main(String args[])
  {
	System.out.println(System.getProperty("java.class.path"));
    Context context = init();
    context.setStandAlone(true);
    try
    { 
      IStrategoTerm result;
      try
      { 
        result = context.invokeStrategyCLI(main_dnf_0_0.instance, "proplawsj", args);
      }
      finally
      { 
        context.getIOAgent().closeAllFiles();
      }
      if(result == null)
      { 
        System.err.println("proplawsj" + (TRACES_ENABLED ? ": rewriting failed, trace:" : ": rewriting failed"));
        context.printStackTrace();
        context.setStandAlone(false);
        System.exit(1);
      }
      else
      { 
        System.out.println(result);
        context.setStandAlone(false);
        System.exit(0);
      }
    }
    catch(StrategoExit exit)
    { 
      context.setStandAlone(false);
      System.exit(exit.getValue());
    }
  }

  public static IStrategoTerm mainNoExit(String ... args) throws StrategoExit
  { 
    return mainNoExit(new Context(), args);
  }

  public static IStrategoTerm mainNoExit(Context context, String ... args) throws StrategoExit
  { 
    try
    { 
      init(context);
      return context.invokeStrategyCLI(main_dnf_0_0.instance, "proplawsj", args);
    }
    finally
    { 
      context.getIOAgent().closeAllFiles();
    }
  }

  public static Strategy getMainStrategy()
  { 
    return main_dnf_0_0.instance;
  }

  public static void initConstructors(ITermFactory termFactory)
  { 
    _consConc_2 = termFactory.makeConstructor("Conc", 2);
    _consNone_0 = termFactory.makeConstructor("None", 0);
    _consSome_1 = termFactory.makeConstructor("Some", 1);
    _consEq_2 = termFactory.makeConstructor("Eq", 2);
    _consImpl_2 = termFactory.makeConstructor("Impl", 2);
    _consOr_2 = termFactory.makeConstructor("Or", 2);
    _consAnd_2 = termFactory.makeConstructor("And", 2);
    _consNot_1 = termFactory.makeConstructor("Not", 1);
  }

  public static void initConstants(ITermFactory termFactory)
  { }

  @SuppressWarnings("all") public static class $Def$I_0_0 extends Strategy 
  { 
    public static $Def$I_0_0 instance = new $Def$I_0_0();

    @Override public IStrategoTerm invoke(Context context, IStrategoTerm term)
    { 
      ITermFactory termFactory = context.getFactory();
      Fail0:
      { 
        IStrategoTerm k_0 = null;
        IStrategoTerm l_0 = null;
        if(term.getTermType() != IStrategoTerm.APPL || proplawsj._consImpl_2 != ((IStrategoAppl)term).getConstructor())
          break Fail0;
        k_0 = term.getSubterm(0);
        l_0 = term.getSubterm(1);
        term = termFactory.makeAppl(proplawsj._consOr_2, new IStrategoTerm[]{termFactory.makeAppl(proplawsj._consNot_1, new IStrategoTerm[]{k_0}), l_0});
        if(true)
          return term;
      }
      context.push("DefI_0_0");
      context.popOnFailure();
      return null;
    }
  }

  @SuppressWarnings("all") public static class $Def$E_0_0 extends Strategy 
  { 
    public static $Def$E_0_0 instance = new $Def$E_0_0();

    @Override public IStrategoTerm invoke(Context context, IStrategoTerm term)
    { 
      ITermFactory termFactory = context.getFactory();
      Fail1:
      { 
        IStrategoTerm m_0 = null;
        IStrategoTerm n_0 = null;
        if(term.getTermType() != IStrategoTerm.APPL || proplawsj._consEq_2 != ((IStrategoAppl)term).getConstructor())
          break Fail1;
        n_0 = term.getSubterm(0);
        m_0 = term.getSubterm(1);
        term = termFactory.makeAppl(proplawsj._consAnd_2, new IStrategoTerm[]{termFactory.makeAppl(proplawsj._consImpl_2, new IStrategoTerm[]{n_0, m_0}), termFactory.makeAppl(proplawsj._consImpl_2, new IStrategoTerm[]{m_0, n_0})});
        if(true)
          return term;
      }
      context.push("DefE_0_0");
      context.popOnFailure();
      return null;
    }
  }

  @SuppressWarnings("all") public static class $D$N_0_0 extends Strategy 
  { 
    public static $D$N_0_0 instance = new $D$N_0_0();

    @Override public IStrategoTerm invoke(Context context, IStrategoTerm term)
    { 
      Fail2:
      { 
        IStrategoTerm o_0 = null;
        if(term.getTermType() != IStrategoTerm.APPL || proplawsj._consNot_1 != ((IStrategoAppl)term).getConstructor())
          break Fail2;
        IStrategoTerm arg0 = term.getSubterm(0);
        if(arg0.getTermType() != IStrategoTerm.APPL || proplawsj._consNot_1 != ((IStrategoAppl)arg0).getConstructor())
          break Fail2;
        o_0 = arg0.getSubterm(0);
        term = o_0;
        if(true)
          return term;
      }
      context.push("DN_0_0");
      context.popOnFailure();
      return null;
    }
  }

  @SuppressWarnings("all") public static class $D$M$A_0_0 extends Strategy 
  { 
    public static $D$M$A_0_0 instance = new $D$M$A_0_0();

    @Override public IStrategoTerm invoke(Context context, IStrategoTerm term)
    { 
      ITermFactory termFactory = context.getFactory();
      Fail3:
      { 
        IStrategoTerm p_0 = null;
        IStrategoTerm q_0 = null;
        if(term.getTermType() != IStrategoTerm.APPL || proplawsj._consNot_1 != ((IStrategoAppl)term).getConstructor())
          break Fail3;
        IStrategoTerm arg1 = term.getSubterm(0);
        if(arg1.getTermType() != IStrategoTerm.APPL || proplawsj._consAnd_2 != ((IStrategoAppl)arg1).getConstructor())
          break Fail3;
        p_0 = arg1.getSubterm(0);
        q_0 = arg1.getSubterm(1);
        term = termFactory.makeAppl(proplawsj._consOr_2, new IStrategoTerm[]{termFactory.makeAppl(proplawsj._consNot_1, new IStrategoTerm[]{p_0}), termFactory.makeAppl(proplawsj._consNot_1, new IStrategoTerm[]{q_0})});
        if(true)
          return term;
      }
      context.push("DMA_0_0");
      context.popOnFailure();
      return null;
    }
  }

  @SuppressWarnings("all") public static class $D$M$O_0_0 extends Strategy 
  { 
    public static $D$M$O_0_0 instance = new $D$M$O_0_0();

    @Override public IStrategoTerm invoke(Context context, IStrategoTerm term)
    { 
      ITermFactory termFactory = context.getFactory();
      Fail4:
      { 
        IStrategoTerm r_0 = null;
        IStrategoTerm s_0 = null;
        if(term.getTermType() != IStrategoTerm.APPL || proplawsj._consNot_1 != ((IStrategoAppl)term).getConstructor())
          break Fail4;
        IStrategoTerm arg2 = term.getSubterm(0);
        if(arg2.getTermType() != IStrategoTerm.APPL || proplawsj._consOr_2 != ((IStrategoAppl)arg2).getConstructor())
          break Fail4;
        r_0 = arg2.getSubterm(0);
        s_0 = arg2.getSubterm(1);
        term = termFactory.makeAppl(proplawsj._consAnd_2, new IStrategoTerm[]{termFactory.makeAppl(proplawsj._consNot_1, new IStrategoTerm[]{r_0}), termFactory.makeAppl(proplawsj._consNot_1, new IStrategoTerm[]{s_0})});
        if(true)
          return term;
      }
      context.push("DMO_0_0");
      context.popOnFailure();
      return null;
    }
  }

  @SuppressWarnings("all") public static class $D$A$O$L_0_0 extends Strategy 
  { 
    public static $D$A$O$L_0_0 instance = new $D$A$O$L_0_0();

    @Override public IStrategoTerm invoke(Context context, IStrategoTerm term)
    { 
      ITermFactory termFactory = context.getFactory();
      Fail5:
      { 
        IStrategoTerm t_0 = null;
        IStrategoTerm u_0 = null;
        IStrategoTerm v_0 = null;
        if(term.getTermType() != IStrategoTerm.APPL || proplawsj._consAnd_2 != ((IStrategoAppl)term).getConstructor())
          break Fail5;
        IStrategoTerm arg3 = term.getSubterm(0);
        if(arg3.getTermType() != IStrategoTerm.APPL || proplawsj._consOr_2 != ((IStrategoAppl)arg3).getConstructor())
          break Fail5;
        t_0 = arg3.getSubterm(0);
        u_0 = arg3.getSubterm(1);
        v_0 = term.getSubterm(1);
        term = termFactory.makeAppl(proplawsj._consOr_2, new IStrategoTerm[]{termFactory.makeAppl(proplawsj._consAnd_2, new IStrategoTerm[]{t_0, v_0}), termFactory.makeAppl(proplawsj._consAnd_2, new IStrategoTerm[]{u_0, v_0})});
        if(true)
          return term;
      }
      context.push("DAOL_0_0");
      context.popOnFailure();
      return null;
    }
  }

  @SuppressWarnings("all") public static class $D$A$O$R_0_0 extends Strategy 
  { 
    public static $D$A$O$R_0_0 instance = new $D$A$O$R_0_0();

    @Override public IStrategoTerm invoke(Context context, IStrategoTerm term)
    { 
      ITermFactory termFactory = context.getFactory();
      Fail6:
      { 
        IStrategoTerm w_0 = null;
        IStrategoTerm x_0 = null;
        IStrategoTerm y_0 = null;
        if(term.getTermType() != IStrategoTerm.APPL || proplawsj._consAnd_2 != ((IStrategoAppl)term).getConstructor())
          break Fail6;
        x_0 = term.getSubterm(0);
        IStrategoTerm arg4 = term.getSubterm(1);
        if(arg4.getTermType() != IStrategoTerm.APPL || proplawsj._consOr_2 != ((IStrategoAppl)arg4).getConstructor())
          break Fail6;
        w_0 = arg4.getSubterm(0);
        y_0 = arg4.getSubterm(1);
        term = termFactory.makeAppl(proplawsj._consOr_2, new IStrategoTerm[]{termFactory.makeAppl(proplawsj._consAnd_2, new IStrategoTerm[]{x_0, w_0}), termFactory.makeAppl(proplawsj._consAnd_2, new IStrategoTerm[]{x_0, y_0})});
        if(true)
          return term;
      }
      context.push("DAOR_0_0");
      context.popOnFailure();
      return null;
    }
  }

  @SuppressWarnings("all") public static class dnf_0_0 extends Strategy 
  { 
    public static dnf_0_0 instance = new dnf_0_0();

    @Override public IStrategoTerm invoke(Context context, IStrategoTerm term)
    { 
      context.push("dnf_0_0");
      Fail7:
      { 
        term = d_71.instance.invoke(context, term, g_71.instance);
        if(term == null)
          break Fail7;
        context.popOnSuccess();
        if(true)
          return term;
      }
      context.popOnFailure();
      return null;
    }
  }

  @SuppressWarnings("all") public static class main_dnf_0_0 extends Strategy 
  { 
    public static main_dnf_0_0 instance = new main_dnf_0_0();

    @Override public IStrategoTerm invoke(Context context, IStrategoTerm term)
    { 
      context.push("main_dnf_0_0");
      Fail8:
      { 
        term = io_wrap_1_0.instance.invoke(context, term, dnf_0_0.instance);
        if(term == null)
          break Fail8;
        context.popOnSuccess();
        if(true)
          return term;
      }
      context.popOnFailure();
      return null;
    }
  }

  @SuppressWarnings("all") public static class main_0_0 extends Strategy 
  { 
    public static main_0_0 instance = new main_0_0();

    @Override public IStrategoTerm invoke(Context context, IStrategoTerm term)
    { 
      context.push("main_0_0");
      Fail9:
      { 
        term = main_dnf_0_0.instance.invoke(context, term);
        if(term == null)
          break Fail9;
        context.popOnSuccess();
        if(true)
          return term;
      }
      context.popOnFailure();
      return null;
    }
  }

  @SuppressWarnings("all") private static final class g_71 extends Strategy 
  { 
    public static final g_71 instance = new g_71();

    @Override public IStrategoTerm invoke(Context context, IStrategoTerm term)
    { 
      ITermFactory termFactory = context.getFactory();
      Fail10:
      { 
        IStrategoTerm term0 = term;
        Success0:
        { 
          Fail11:
          { 
            IStrategoTerm term1 = term;
            IStrategoConstructor cons0 = term.getTermType() == IStrategoTerm.APPL ? ((IStrategoAppl)term).getConstructor() : null;
            Success1:
            { 
              if(cons0 == proplawsj._consImpl_2)
              { 
                Fail12:
                { 
                  IStrategoTerm e_68 = null;
                  IStrategoTerm f_68 = null;
                  e_68 = term.getSubterm(0);
                  f_68 = term.getSubterm(1);
                  term = termFactory.makeAppl(proplawsj._consNot_1, new IStrategoTerm[]{e_68});
                  term = this.invoke(context, term);
                  if(term == null)
                    break Fail12;
                  term = termFactory.makeAppl(proplawsj._consOr_2, new IStrategoTerm[]{term, f_68});
                  if(true)
                    break Success1;
                }
                term = term1;
              }
              Success2:
              { 
                if(cons0 == proplawsj._consEq_2)
                { 
                  Fail13:
                  { 
                    IStrategoTerm k_69 = null;
                    IStrategoTerm l_69 = null;
                    IStrategoTerm o_69 = null;
                    l_69 = term.getSubterm(0);
                    k_69 = term.getSubterm(1);
                    term = termFactory.makeAppl(proplawsj._consImpl_2, new IStrategoTerm[]{l_69, k_69});
                    term = this.invoke(context, term);
                    if(term == null)
                      break Fail13;
                    o_69 = term;
                    term = termFactory.makeAppl(proplawsj._consImpl_2, new IStrategoTerm[]{k_69, l_69});
                    term = this.invoke(context, term);
                    if(term == null)
                      break Fail13;
                    term = termFactory.makeAppl(proplawsj._consAnd_2, new IStrategoTerm[]{o_69, term});
                    term = this.invoke(context, term);
                    if(term == null)
                      break Fail13;
                    if(true)
                      break Success2;
                  }
                  term = term1;
                }
                Success3:
                { 
                  if(cons0 == proplawsj._consAnd_2)
                  { 
                    Fail14:
                    { 
                      IStrategoTerm s_69 = null;
                      IStrategoTerm t_69 = null;
                      IStrategoTerm u_69 = null;
                      IStrategoTerm v_69 = null;
                      IStrategoTerm arg5 = term.getSubterm(0);
                      if(arg5.getTermType() != IStrategoTerm.APPL || proplawsj._consOr_2 != ((IStrategoAppl)arg5).getConstructor())
                        break Fail14;
                      s_69 = arg5.getSubterm(0);
                      t_69 = arg5.getSubterm(1);
                      u_69 = term.getSubterm(1);
                      term = termFactory.makeAppl(proplawsj._consAnd_2, new IStrategoTerm[]{s_69, u_69});
                      term = this.invoke(context, term);
                      if(term == null)
                        break Fail14;
                      v_69 = term;
                      term = termFactory.makeAppl(proplawsj._consAnd_2, new IStrategoTerm[]{t_69, u_69});
                      term = this.invoke(context, term);
                      if(term == null)
                        break Fail14;
                      term = termFactory.makeAppl(proplawsj._consOr_2, new IStrategoTerm[]{v_69, term});
                      if(true)
                        break Success3;
                    }
                    term = term1;
                  }
                  Success4:
                  { 
                    if(cons0 == proplawsj._consAnd_2)
                    { 
                      Fail15:
                      { 
                        IStrategoTerm b_70 = null;
                        IStrategoTerm c_70 = null;
                        IStrategoTerm d_70 = null;
                        IStrategoTerm e_70 = null;
                        c_70 = term.getSubterm(0);
                        IStrategoTerm arg6 = term.getSubterm(1);
                        if(arg6.getTermType() != IStrategoTerm.APPL || proplawsj._consOr_2 != ((IStrategoAppl)arg6).getConstructor())
                          break Fail15;
                        b_70 = arg6.getSubterm(0);
                        d_70 = arg6.getSubterm(1);
                        term = termFactory.makeAppl(proplawsj._consAnd_2, new IStrategoTerm[]{c_70, b_70});
                        term = this.invoke(context, term);
                        if(term == null)
                          break Fail15;
                        e_70 = term;
                        term = termFactory.makeAppl(proplawsj._consAnd_2, new IStrategoTerm[]{c_70, d_70});
                        term = this.invoke(context, term);
                        if(term == null)
                          break Fail15;
                        term = termFactory.makeAppl(proplawsj._consOr_2, new IStrategoTerm[]{e_70, term});
                        if(true)
                          break Success4;
                      }
                      term = term1;
                    }
                    Success5:
                    { 
                      if(cons0 == proplawsj._consNot_1)
                      { 
                        Fail16:
                        { 
                          IStrategoTerm i_70 = null;
                          IStrategoTerm arg7 = term.getSubterm(0);
                          if(arg7.getTermType() != IStrategoTerm.APPL || proplawsj._consNot_1 != ((IStrategoAppl)arg7).getConstructor())
                            break Fail16;
                          i_70 = arg7.getSubterm(0);
                          term = i_70;
                          if(true)
                            break Success5;
                        }
                        term = term1;
                      }
                      Success6:
                      { 
                        if(cons0 == proplawsj._consNot_1)
                        { 
                          Fail17:
                          { 
                            IStrategoTerm l_70 = null;
                            IStrategoTerm m_70 = null;
                            IStrategoTerm q_70 = null;
                            IStrategoTerm arg8 = term.getSubterm(0);
                            if(arg8.getTermType() != IStrategoTerm.APPL || proplawsj._consAnd_2 != ((IStrategoAppl)arg8).getConstructor())
                              break Fail17;
                            l_70 = arg8.getSubterm(0);
                            m_70 = arg8.getSubterm(1);
                            term = termFactory.makeAppl(proplawsj._consNot_1, new IStrategoTerm[]{l_70});
                            term = this.invoke(context, term);
                            if(term == null)
                              break Fail17;
                            q_70 = term;
                            term = termFactory.makeAppl(proplawsj._consNot_1, new IStrategoTerm[]{m_70});
                            term = this.invoke(context, term);
                            if(term == null)
                              break Fail17;
                            term = termFactory.makeAppl(proplawsj._consOr_2, new IStrategoTerm[]{q_70, term});
                            if(true)
                              break Success6;
                          }
                          term = term1;
                        }
                        if(cons0 == proplawsj._consNot_1)
                        { 
                          IStrategoTerm x_70 = null;
                          IStrategoTerm y_70 = null;
                          IStrategoTerm z_70 = null;
                          IStrategoTerm arg9 = term.getSubterm(0);
                          if(arg9.getTermType() != IStrategoTerm.APPL || proplawsj._consOr_2 != ((IStrategoAppl)arg9).getConstructor())
                            break Fail11;
                          x_70 = arg9.getSubterm(0);
                          y_70 = arg9.getSubterm(1);
                          term = termFactory.makeAppl(proplawsj._consNot_1, new IStrategoTerm[]{x_70});
                          term = this.invoke(context, term);
                          if(term == null)
                            break Fail11;
                          z_70 = term;
                          term = termFactory.makeAppl(proplawsj._consNot_1, new IStrategoTerm[]{y_70});
                          term = this.invoke(context, term);
                          if(term == null)
                            break Fail11;
                          term = termFactory.makeAppl(proplawsj._consAnd_2, new IStrategoTerm[]{z_70, term});
                          term = this.invoke(context, term);
                          if(term == null)
                            break Fail11;
                        }
                        else
                        { 
                          break Fail11;
                        }
                      }
                    }
                  }
                }
              }
            }
            if(true)
              break Success0;
          }
          term = term0;
        }
        if(true)
          return term;
      }
      return null;
    }
  }

  @SuppressWarnings("all") private static final class d_71 extends Strategy 
  { 
    public static final d_71 instance = new d_71();

    @Override public IStrategoTerm invoke(Context context, IStrategoTerm term, Strategy h_71)
    { 
      Fail18:
      { 
        lifted0 lifted00 = new lifted0();
        lifted00.h_71 = h_71;
        term = SRTS_all.instance.invoke(context, term, lifted00);
        if(term == null)
          break Fail18;
        term = h_71.invoke(context, term);
        if(term == null)
          break Fail18;
        if(true)
          return term;
      }
      return null;
    }
  }

  @SuppressWarnings("all") private static final class lifted0 extends Strategy 
  { 
    Strategy h_71;

    @Override public IStrategoTerm invoke(Context context, IStrategoTerm term)
    { 
      Fail19:
      { 
        term = d_71.instance.invoke(context, term, h_71);
        if(term == null)
          break Fail19;
        if(true)
          return term;
      }
      return null;
    }
  }

  public static void registerInterop(org.spoofax.interpreter.core.IContext context, Context compiledContext)
  { 
    new InteropRegisterer().registerLazy(context, compiledContext, InteropRegisterer.class.getClassLoader());
  }

  @SuppressWarnings("unused") public static class InteropRegisterer extends org.strategoxt.lang.InteropRegisterer 
  { 
    @Override public void register(org.spoofax.interpreter.core.IContext context, Context compiledContext)
    { 
      register(context, compiledContext, context.getVarScope());
    }

    @Override public void registerLazy(org.spoofax.interpreter.core.IContext context, Context compiledContext, ClassLoader classLoader)
    { 
      registerLazy(context, compiledContext, classLoader, context.getVarScope());
    }

    private void register(org.spoofax.interpreter.core.IContext context, Context compiledContext, org.spoofax.interpreter.core.VarScope varScope)
    { 
      compiledContext.registerComponent("proplawsj");
      proplawsj.init(compiledContext);
      varScope.addSVar("DefI_0_0", new InteropSDefT($Def$I_0_0.instance, context));
      varScope.addSVar("DefE_0_0", new InteropSDefT($Def$E_0_0.instance, context));
      varScope.addSVar("DN_0_0", new InteropSDefT($D$N_0_0.instance, context));
      varScope.addSVar("DMA_0_0", new InteropSDefT($D$M$A_0_0.instance, context));
      varScope.addSVar("DMO_0_0", new InteropSDefT($D$M$O_0_0.instance, context));
      varScope.addSVar("DAOL_0_0", new InteropSDefT($D$A$O$L_0_0.instance, context));
      varScope.addSVar("DAOR_0_0", new InteropSDefT($D$A$O$R_0_0.instance, context));
      varScope.addSVar("dnf_0_0", new InteropSDefT(dnf_0_0.instance, context));
      varScope.addSVar("main_dnf_0_0", new InteropSDefT(main_dnf_0_0.instance, context));
      varScope.addSVar("main_0_0", new InteropSDefT(main_0_0.instance, context));
    }

    private void registerLazy(org.spoofax.interpreter.core.IContext context, Context compiledContext, ClassLoader classLoader, org.spoofax.interpreter.core.VarScope varScope)
    { 
      compiledContext.registerComponent("proplawsj");
      proplawsj.init(compiledContext);
      varScope.addSVar("DefI_0_0", new InteropSDefT(classLoader, "proplawsj$$Def$I_0_0", context));
      varScope.addSVar("DefE_0_0", new InteropSDefT(classLoader, "proplawsj$$Def$E_0_0", context));
      varScope.addSVar("DN_0_0", new InteropSDefT(classLoader, "proplawsj$$D$N_0_0", context));
      varScope.addSVar("DMA_0_0", new InteropSDefT(classLoader, "proplawsj$$D$M$A_0_0", context));
      varScope.addSVar("DMO_0_0", new InteropSDefT(classLoader, "proplawsj$$D$M$O_0_0", context));
      varScope.addSVar("DAOL_0_0", new InteropSDefT(classLoader, "proplawsj$$D$A$O$L_0_0", context));
      varScope.addSVar("DAOR_0_0", new InteropSDefT(classLoader, "proplawsj$$D$A$O$R_0_0", context));
      varScope.addSVar("dnf_0_0", new InteropSDefT(classLoader, "proplawsj$dnf_0_0", context));
      varScope.addSVar("main_dnf_0_0", new InteropSDefT(classLoader, "proplawsj$main_dnf_0_0", context));
      varScope.addSVar("main_0_0", new InteropSDefT(classLoader, "proplawsj$main_0_0", context));
    }
  }
}